<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script data-ezscrex='false' data-cfasync='false' data-pagespeed-no-defer>var __ez=__ez||{};__ez.stms=Date.now();__ez.evt={};__ez.script={};__ez.ck=__ez.ck||{};__ez.template={};__ez.template.isOrig=false;__ez.queue=function(){var e=0,i=0,t=[],n=!1,o=[],r=[],s=!0,a=function(e,i,n,o,r,s,a){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:window,d=this;this.name=e,this.funcName=i,this.parameters=null===n?null:p(n)?n:[n],this.isBlock=o,this.blockedBy=r,this.deleteWhenComplete=s,this.isError=!1,this.isComplete=!1,this.isInitialized=!1,this.proceedIfError=a,this.fWindow=l,this.isTimeDelay=!1,this.process=function(){f("... func = "+e),d.isInitialized=!0,d.isComplete=!0,f("... func.apply: "+e);var i=d.funcName.split("."),n=null,o=this.fWindow||window;i.length>3||(n=3===i.length?o[i[0]][i[1]][i[2]]:2===i.length?o[i[0]][i[1]]:o[d.funcName]),null!=n&&n.apply(null,this.parameters),!0===d.deleteWhenComplete&&delete t[e],!0===d.isBlock&&(f("----- F'D: "+d.name),u())}},l=function(e,i,t,n,o,r,s){var a=arguments.length>7&&void 0!==arguments[7]?arguments[7]:window,l=this;this.name=e,this.path=i,this.async=o,this.defer=r,this.isBlock=t,this.blockedBy=n,this.isInitialized=!1,this.isError=!1,this.isComplete=!1,this.proceedIfError=s,this.fWindow=a,this.isTimeDelay=!1,this.isPath=function(e){return"/"===e[0]&&"/"!==e[1]},this.getSrc=function(e){return void 0!==window.__ezScriptHost&&this.isPath(e)&&"banger.js"!==this.name?window.__ezScriptHost+e:e},this.process=function(){l.isInitialized=!0,f("... file = "+e);var i=this.fWindow?this.fWindow.document:document,t=i.createElement("script");t.src=this.getSrc(this.path),!0===o?t.async=!0:!0===r&&(t.defer=!0),t.onerror=function(){var e={url:window.location.href,name:l.name,path:l.path,user_agent:window.navigator.userAgent};"undefined"!=typeof _ezaq&&(e.pageview_id=_ezaq.page_view_id);var i=encodeURIComponent(JSON.stringify(e)),t=new XMLHttpRequest;t.open("GET","//g.ezoic.net/ezqlog?d="+i,!0),t.send(),f("----- ERR'D: "+l.name),l.isError=!0,!0===l.isBlock&&u()},t.onreadystatechange=t.onload=function(){var e=t.readyState;f("----- F'D: "+l.name),e&&!/loaded|complete/.test(e)||(l.isComplete=!0,!0===l.isBlock&&u())},i.getElementsByTagName("head")[0].appendChild(t)}},d=function(e,i){this.name=e,this.path="",this.async=!1,this.defer=!1,this.isBlock=!1,this.blockedBy=[],this.isInitialized=!0,this.isError=!1,this.isComplete=i,this.proceedIfError=!1,this.isTimeDelay=!1,this.process=function(){}};function c(e){!0!==h(e)&&0!=s&&e.process()}function h(e){if(!0===e.isTimeDelay&&!1===n)return f(e.name+" blocked = TIME DELAY!"),!0;if(p(e.blockedBy))for(var i=0;i<e.blockedBy.length;i++){var o=e.blockedBy[i];if(!1===t.hasOwnProperty(o))return f(e.name+" blocked = "+o),!0;if(!0===e.proceedIfError&&!0===t[o].isError)return!1;if(!1===t[o].isComplete)return f(e.name+" blocked = "+o),!0}return!1}function f(e){var i=window.location.href,t=new RegExp("[?&]ezq=([^&#]*)","i").exec(i);"1"===(t?t[1]:null)&&console.debug(e)}function u(){++e>200||(f("let's go"),m(o),m(r))}function m(e){for(var i in e)if(!1!==e.hasOwnProperty(i)){var t=e[i];!0===t.isComplete||h(t)||!0===t.isInitialized||!0===t.isError?!0===t.isError?f(t.name+": error"):!0===t.isComplete?f(t.name+": complete already"):!0===t.isInitialized&&f(t.name+": initialized already"):t.process()}}function p(e){return"[object Array]"==Object.prototype.toString.call(e)}return window.addEventListener("load",(function(){setTimeout((function(){n=!0,f("TDELAY -----"),u()}),5e3)}),!1),{addFile:function(e,i,n,s,a,d,h,f,u){var m=new l(e,i,n,s,a,d,h,u);!0===f?o[e]=m:r[e]=m,t[e]=m,c(m)},addDelayFile:function(e,i){var n=new l(e,i,!1,[],!1,!1,!0);n.isTimeDelay=!0,f(e+" ...  FILE! TDELAY"),r[e]=n,t[e]=n,c(n)},addFunc:function(e,n,s,l,d,h,f,u,m,p){!0===h&&(e=e+"_"+i++);var w=new a(e,n,s,l,d,f,u,p);!0===m?o[e]=w:r[e]=w,t[e]=w,c(w)},addDelayFunc:function(e,i,n){var o=new a(e,i,n,!1,[],!0,!0);o.isTimeDelay=!0,f(e+" ...  FUNCTION! TDELAY"),r[e]=o,t[e]=o,c(o)},items:t,processAll:u,setallowLoad:function(e){s=e},markLoaded:function(e){if(e&&0!==e.length){if(e in t){var i=t[e];!0===i.isComplete?f(i.name+" "+e+": error loaded duplicate"):(i.isComplete=!0,i.isInitialized=!0)}else t[e]=new d(e,!0);f("markLoaded dummyfile: "+t[e].name)}},logWhatsBlocked:function(){for(var e in t)!1!==t.hasOwnProperty(e)&&h(t[e])}}}();__ez.evt.add=function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n()},__ez.evt.remove=function(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent?e.detachEvent("on"+t,n):delete e["on"+t]};__ez.script.add=function(e){var t=document.createElement("script");t.src=e,t.async=!0,t.type="text/javascript",document.getElementsByTagName("head")[0].appendChild(t)};__ez.dot={};__ez.queue.addFile('/detroitchicago/boise.js', '/detroitchicago/boise.js?gcb=195-2&cb=2', true, [], true, false, true, false);__ez.queue.addFile('/parsonsmaize/abilene.js', '/parsonsmaize/abilene.js?gcb=195-2&cb=28', true, [], true, false, true, false);</script>
<script data-ezscrex="false" type="text/javascript" data-cfasync="false">window._ezaq = Object.assign({}, typeof window._ezaq !== "undefined" ? window._ezaq : {}, {"ad_cache_level":1,"domain_id":173770,"ezcache_level":2,"ezcache_skip_code":0,"has_bad_image":0,"has_bad_words":0,"is_sitespeed":0,"lt_cache_level":0,"page_view_id":"b50007c3-89e8-4c14-77ee-eb89e987f310","response_size_orig":53226,"response_time_orig":5,"template_id":134,"url":"https://plantuml.com/en-dark/running","word_count":780,"worst_bad_word_level":0});__ez.queue.markLoaded('ezaqBaseReady');</script>
<script type="text/javascript">(function(){function storageAvailable(type){var storage;try{storage=window[type];var x='__storage_test__';storage.setItem(x,x);storage.removeItem(x);return true;}
catch(e){return e instanceof DOMException&&(e.code===22||e.code===1014||e.name==='QuotaExceededError'||e.name==='NS_ERROR_DOM_QUOTA_REACHED')&&(storage&&storage.length!==0);}}
function remove_ama_config(){if(storageAvailable('localStorage')){localStorage.removeItem("google_ama_config");}}
remove_ama_config()})()</script>
<script type="text/javascript">var ezoicTestActive = true</script>
<script data-ezscrex="false" type="text/javascript" data-cfasync="false">window._ezaq = Object.assign({}, typeof window._ezaq !== "undefined" ? window._ezaq : {}, {"ab_test_id":"mod174-c","ad_cache_level":1,"ad_count_adjustment":0,"ad_lazyload_version":0,"ad_load_version":1,"ad_location_ids":"","adx_ad_count":0,"ai_placeholder_cache_level":1,"ai_placeholder_placement_cnt":-1,"bidder_method":1,"bidder_version":3,"city":"Krasnoyarsk","country":"RU","days_since_last_visit":-1,"display_ad_count":0,"domain_id":173770,"domain_test_group":20230802,"ds_adsize_opt_id":-1,"engaged_time_visit":0,"ezcache_level":2,"ezcache_skip_code":0,"form_factor_id":1,"framework_id":1,"has_bad_image":0,"has_bad_words":0,"iab_category":"","iab_category_0":"596","is_embed":false,"is_from_recommended_pages":false,"is_return_visitor":false,"is_sitespeed":0,"last_page_load":"","last_pageview_id":"","lt_cache_level":0,"max_ads":0,"metro_code":0,"optimization_version":1,"page_ad_positions":"","page_view_count":363,"page_view_id":"b50007c3-89e8-4c14-77ee-eb89e987f310","position_selection_id":0,"postal_code":"660000","pv_event_count":0,"response_size_orig":53226,"response_time_orig":5,"serverid":"i-020e20bd20c9cad94","state":"KYA","sub_page_ad_positions":"","t_epoch":1697690926,"template_id":134,"time_on_site_visit":0,"url":"https://plantuml.com/en-dark/running","word_count":780,"worst_bad_word_level":0});__ez.queue.markLoaded('ezaqReady');</script>
<script data-ezscrex='false' data-cfasync='false' data-pagespeed-no-defer>__ez.queue.addFile('/parsonsmaize/mulvane.js', '/parsonsmaize/mulvane.js?gcb=195-2&cb=5', true, ['/parsonsmaize/abilene.js'], true, false, true, false);__ez.queue.addFile('/parsonsmaize/olathe.js', '/parsonsmaize/olathe.js?gcb=195-2&cb=20', false, ['/parsonsmaize/abilene.js','/parsonsmaize/mulvane.js'], true, false, true, false);__ez.queue.addFile('/porpoiseant/et.js', '/porpoiseant/et.js?gcb=195-2&cb=2', false, [], true, false, true, false);!function(){var e;__ez.vep=(e=[],{Add:function(i,t){__ez.dot.isDefined(i)&&__ez.dot.isValid(t)&&e.push({type:"video",video_impression_id:i,domain_id:__ez.dot.getDID(),t_epoch:__ez.dot.getEpoch(0),data:__ez.dot.dataToStr(t)})},Fire:function(){if(void 0===document.visibilityState||"prerender"!==document.visibilityState){if(__ez.dot.isDefined(e)&&e.length>0)for(;e.length>0;){var i=5;i>e.length&&(i=e.length);var t=e.splice(0,i),o=__ez.dot.getURL("/detroitchicago/grapefruit.gif")+"?orig="+(!0===__ez.template.isOrig?1:0)+"&v="+btoa(JSON.stringify(t));__ez.dot.Fire(o)}e=[]}}})}();</script><script data-ezscrex='false' data-cfasync='false' data-pagespeed-no-defer>!function(){function e(i){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(i)}__ez.pel=function(){var i=[];function t(t,o,d,_,n,r,a,s){if(__ez.dot.isDefined(t)&&0!=__ez.dot.isAnyDefined(t.getSlotElementId,t.ElementId)){void 0===s&&(s=!1);var p=parseInt(__ez.dot.getTargeting(t,"ap")),f=__ez.dot.getSlotIID(t),u=__ez.dot.getAdUnit(t,s),z=parseInt(__ez.dot.getTargeting(t,"compid")),g=0,c=0,l=function(i){if("undefined"==typeof _ezim_d)return!1;var t=__ez.dot.getAdUnitPath(i).split("/").pop();if("object"===("undefined"==typeof _ezim_d?"undefined":e(_ezim_d))&&_ezim_d.hasOwnProperty(t))return _ezim_d[t];for(var o in _ezim_d)if(o.split("/").pop()===t)return _ezim_d[o];return!1}(t);"object"==e(l)&&(void 0!==l.creative_id&&(c=l.creative_id),void 0!==l.line_item_id&&(g=l.line_item_id)),__ez.dot.isDefined(f,u)&&__ez.dot.isValid(o)&&("0"===f&&!0!==s||""===u||i.push({type:"impression",impression_id:f,domain_id:__ez.dot.getDID(),unit:u,t_epoch:__ez.dot.getEpoch(0),revenue:d,est_revenue:_,ad_position:p,ad_size:"",bid_floor_filled:n,bid_floor_prev:r,stat_source_id:a,country_code:__ez.dot.getCC(),pageview_id:__ez.dot.getPageviewId(),comp_id:z,line_item_id:g,creative_id:c,data:__ez.dot.dataToStr(o),is_orig:s||__ez.template.isOrig}))}}function o(){void 0!==document.visibilityState&&"prerender"===document.visibilityState||(__ez.dot.isDefined(i)&&i.length>0&&[i.filter((function(e){return e.is_orig})),i.filter((function(e){return!e.is_orig}))].forEach((function(e){for(;e.length>0;){var i=e[0].is_orig||!1,t=5;t>e.length&&(t=e.length);var o=e.splice(0,t),d=__ez.dot.getURL("/porpoiseant/army.gif")+"?orig="+(!0===i?1:0)+"&sts="+btoa(JSON.stringify(o));(void 0!==window.isAmp&&isAmp||void 0!==window.ezWp&&ezWp)&&void 0!==window._ezaq&&_ezaq.hasOwnProperty("domain_id")&&(d+="&visit_uuid="+_ezaq.visit_uuid),__ez.dot.Fire(d)}})),i=[])}return{Add:t,AddAndFire:function(e,i){t(e,i,0,0,0,0,0),o()},AddAndFireOrig:function(e,i){t(e,i,0,0,0,0,0,!0),o()},AddById:function(e,t,o,d){var _=e.split("/");if(__ez.dot.isDefined(e)&&3===_.length&&__ez.dot.isValid(t)){var n=_[0],r={type:"impression",impression_id:_[2],domain_id:__ez.dot.getDID(),unit:n,t_epoch:__ez.dot.getEpoch(0),pageview_id:__ez.dot.getPageviewId(),data:__ez.dot.dataToStr(t),is_orig:o||__ez.template.isOrig};void 0!==d&&(r.revenue=d),i.push(r)}},Fire:o,GetPixels:function(){return i}}}()}();__ez.queue.addFile('/detroitchicago/raleigh.js', '/detroitchicago/raleigh.js?gcb=195-2&cb=6', false, ['/parsonsmaize/abilene.js'], true, false, true, false);__ez.queue.addFile('/detroitchicago/vista.js', '/detroitchicago/vista.js?gcb=195-2&cb=5', false, ['/parsonsmaize/abilene.js'], true, false, true, false);__ez.queue.addFile('/detroitchicago/tampa.js', '/detroitchicago/tampa.js?gcb=195-2&cb=5', false, ['/parsonsmaize/abilene.js'], true, false, true, false);</script><base href=""/>
<meta name="flattr:id" content="1ew3x0"/>



<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization",
  "url": "https://plantuml.com",
  "name": "PlantUML",
  "sameAs" : ["https://twitter.com/plantuml","https://en.wikipedia.org/wiki/PlantUML","https://www.wikidata.org/wiki/Q18346546"],
  "logo": "https://cdn-0.plantuml.com/logo3.png",
  "contactPoint": [{
    "@type": "ContactPoint",
    "email": "plantuml@gmail.com",
    "url": "https://plantuml.com",
    "contactType": "customer service"
  }]
}
</script>
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "item": {
      "@id": "https://plantuml.com",
      "name": "Home"
    }
  },{
    "@type": "ListItem",
    "position": 2,
    "item": {
      "@id": "https://plantuml.com/sitemap-news-and-information",
      "name": "News and information"
    }
  },{
    "@type": "ListItem",
    "position": 3,
    "item": {
      "@id": "https://plantuml.com/running",
      "name": "Running PlantUML"
  }
  }]
}
</script>
<link rel="canonical" href="../running.html"/>
<link rel="alternate" hreflang="x-default" href="../running.html"/>
<link rel="alternate" hreflang="de" href="../de/running.html"/>
<link rel="alternate" hreflang="en" href="../running.html"/>
<link rel="alternate" hreflang="es" href="../es/running.html"/>
<link rel="alternate" hreflang="fr" href="../fr/running.html"/>
<link rel="alternate" hreflang="ja" href="../ja/running.html"/>
<link rel="alternate" hreflang="ru" href="../ru/running.html"/>
<link rel="alternate" hreflang="ko" href="../ko/running.html"/>
<link rel="alternate" hreflang="zh" href="../zh/running.html"/>

<link rel="shortcut icon" href="../favicon.ico"/>

<link rel="preload" as="image" href="../svgrepo-house.svg"/>
<link rel="preload" as="image" href="../svgrepo-text-news.svg"/>
<link rel="preload" as="image" href="../svgrepo-rocket-3-start.svg"/>
<link rel="preload" as="image" href="../svgrepo-server.svg"/>
<link rel="preload" as="image" href="../svgrepo-play.svg"/>
<link rel="preload" as="image" href="../svgrepo-forum.svg"/>
<link rel="preload" as="image" href="../svgrepo-add-to-online-cart.svg"/>
<link rel="preload" as="image" href="../svgrepo-forum-message.svg"/>
<link rel="preload" as="image" href="../svgrepo-palette-fill.svg"/>
<link rel="preload" as="image" href="../svgrepo-cpu.svg"/>
<link rel="preload" as="image" href="../svgrepo-books-library.svg"/>
<link rel="preload" as="image" href="../svgrepo-signpost-fill.svg"/>
<link rel="preload" as="image" href="../svgrepo-library.svg"/>

<link rel="preload" as="image" href="../flags21.png"/>

<link rel="preload" as="image" href="../svgrepo-uxwing-dark-mode-toggle.svg"/>


<!-- link rel="preload" as="image" href="https://img.shields.io/liberapay/patrons/plantuml.svg?logo=liberapay" -->





<meta property="og:type" content="article"/>



<meta property="og:url" content="https://plantuml.com/running"/>
<meta property="og:site_name" content="PlantUML.com"/>

<!-- meta property="og:image" content="https://plantuml.com/og-running" -->
<meta name="twitter:image" content="https://plantuml.com/og-running"/>
<meta property="og:locale" content="en"/>

<meta name="twitter:card" content="summary"/>


<meta name="twitter:site" content="@PlantUML"/>
<meta name="twitter:creator" content="@PlantUML"/>

<script>
if (window.location.href.indexOf("/en-dark/") == -1) {
var lg = navigator.language.substring(0,2);
if (lg=="de") window.location.href = "/de-dark/running";
if (lg=="es") window.location.href = "/es-dark/running";
if (lg=="fr") window.location.href = "/fr-dark/running";
if (lg=="ja") window.location.href = "/ja-dark/running";
if (lg=="ko") window.location.href = "/ko-dark/running";
if (lg=="ru") window.location.href = "/ru-dark/running";
if (lg=="zh") window.location.href = "/zh-dark/running";
}
</script>




<!-- https://www.w3schools.com/colors/colors_picker.asp -->
<!-- filter css https://codepen.io/sosuke/pen/Pjoqqp -->














<style>
.scale {
}

li {
	margin: 2px;
}
#external li {
	margin: 13px;
}

.pezoic {
  max-width:970px;
}

@media screen and (max-width: 1600px) {
	.pezoic {
	  max-width:768px;
	}
}

.coptable {
	max-width: 90%;
}

.mytab {
	display:inline-block;
	border-radius: 3px;
	border: 1px solid #e1e4e8;
}

.mytab:hover {
	border: 1px dashed #8CB4FF;
	cursor: pointer;
	color: #8CB4FF;
	background: #111111;
}

.cop {
	margin: 25px 10px 0 10px;
	filter: invert(100%);
}
.cop:hover {
	cursor: pointer; 
filter: invert(59%) sepia(81%) saturate(1778%) hue-rotate(164deg) brightness(105%) contrast(103%);
}
.cop2 {
	margin: 25px 10px 0 10px;
}
.cop2:hover {
	cursor: pointer; 
}
.msg {
	position: absolute;
	color:#339966;
	background-color: #FFF;
	margin-top: 55px;
	display:none;
	border-radius: 3px;
	border: 1px solid #4dff00;
}

.mycell0 {
	float: left;
	vertical-align : top;
	padding:10px;
}
.mycell0 code:hover {
	cursor: default; 
	color: #fff;
}

.mycell {
	float: right;
	vertical-align : top;
	padding:10px;
	max-width: 55vw;
	overflow-x: auto;
}

.mycell0 pre {
	max-width: 55vw;
	overflow-x: auto;
}

.cod {
	background: #222222;
	padding: 2px 5px;
	border-radius: 3px;
}
.colo {
	display: inline-block;
	background: #222222;
	padding: 7px 12px;
	border-radius: 3px;
}
.tag,.tagg,.tago,.tagr {
	text-rendering: optimizeLegibility;
	display: inline-block;
	padding: 3px 5px 2px 4px;
	text-decoration: none;
	white-space: nowrap;
	border: 1px solid #999;
	text-transform: uppercase;
	text-align: center;
	border-radius: 3px;
	font-size: 11px;
	font-weight: bold;
	line-height: 90%;
}
.tag {
	background-color: #EEEEEE;
}
.tagg {
	background-color: #98FB98;
}
.tago {
	background-color: #fafa00;
}
.tagr {
	background-color: #FF4500;
}


a {
    text-decoration:none;
    color:#8CB4FF;
}
a:hover {
    text-decoration:underline;
}

.menu1 {
    border: 0;
    font-family: Helvetica,sans-serif;
    font-size: 14px;
    padding: 0;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
	vertical-align: middle;
	line-height: 30px;
}
.menu1 a{
    /*background: #FF0;*/
    text-align:center;
	padding:10px 7px 10px 7px;
    text-decoration:none;
    color:#b0c0d0;
}
.menu1 a:hover{
    color:#8CB4FF;
}
#menu0 {
    top:0;
    z-index: 4;
    margin:0 0 0 10px;
    padding:0;
}

@media screen and (max-width: 1200px) {
	#menu0 {
	visibility: hidden;
	}	
}

.mhov img {
	margin: 0 5px 0 0;
	padding: 0;
}
.mhov:hover {
filter: invert(59%) sepia(81%) saturate(1778%) hue-rotate(164deg) brightness(105%) contrast(103%);
}

#menuside2 {
    border:0;
    font-family:Helvetica,sans-serif;
    font-size:14px;
    padding:20px 0 4px 0;
    margin:0
}
#menuside2 span {
    vertical-align: top;
}
#menuside2 li{
    list-style:none;
    position:relative;
    padding:0;
	margin:10px 20px 10px 10px;
    border:0;
}
#menuside2 li a{
	display: inline-block;
    text-decoration:none;
    color:#b0c0d0;
    width:100%;
}
#menuside2 img {
filter: invert(46%) sepia(13%) saturate(620%) hue-rotate(170deg) brightness(91%) contrast(85%);
}

#BC {
    z-index: 0;
    padding-top: 5px;
    top: 35px;
}

.breadcrumb {
z-index:1;
	font-family:Helvetica,sans-serif;
	font-size:14px;
	text-align: center;
	display: inline-block;
	overflow: hidden;
	border-radius: 5px;
}


.breadcrumb a {
	text-decoration: none;
	outline: none;
	display: block;
	float: left;
	font-size: 12px;
	line-height: 24px;
	color: #373f49;
	padding: 0 10px 0 35px;
	background: #f0f1f1;
	background: linear-gradient(#f0f1f1, #c6d2d2);
	position: relative;
}
.breadcrumb a:first-child {
	padding-left: 21px;
	border-radius: 5px 0 0 5px; /*to match with the parent's radius*/
}
.breadcrumb a:first-child:before {
	left: 14px;
}
.breadcrumb a:last-child {
	visibility: hidden;
}

.breadcrumb a.active, .breadcrumb a:hover{
	color: #0366d6;
	background: #c6d2d2;
	background: linear-gradient(#e3e4e4, #b8c7c7);
}
.breadcrumb a.active:after, .breadcrumb a:hover:after {
	background: #c6d2d2;
	background: linear-gradient(135deg, #e3e4e4, #b8c7c7);
}

.breadcrumb a:after {
	content: '';
	position: absolute;
	top: 0; 
	right: -12px; /*half of square's length*/
	/*same dimension as the line-height of .breadcrumb a */
	width: 24px; 
	height: 24px;
	transform: scale(0.707) rotate(45deg);
	/*we need to prevent the arrows from getting buried under the next link*/
	z-index: 1;
	/*background same as links but the gradient will be rotated to compensate with the transform applied*/
	background: #f0f1f1;
	background: linear-gradient(135deg, #f0f1f1, #c6d2d2);
	/*stylish arrow design using box shadow*/
	box-shadow: 
		2px -2px 0 2px rgba(0,0,0,0.1), 
		3px -3px 0 2px rgba(255,255,255,0.1);
	/*
		5px - for rounded arrows and 
		50px - to prevent hover glitches on the border created using shadows*/
	border-radius: 0 5px 0 50px;
}

/*we dont need an arrow after the last link*/
.breadcrumb a:last-child:after {
	content: none;
	visibility: hidden;
}


.lga,.lga a,.lgi,.lgi a {
	font-family:Helvetica,sans-serif;
	font-size:13px;
	text-align: center;
    color: #fff;
    padding: 0 5px;
    margin: 0;
}
.lga,.lga a {
    background-color: #008;
}
.lgi,.lgi a {
    background-color: #888;
}
.lga:hover,.lga:hover a {
    text-decoration: none;
    color: #BBB;
}
.lgi:hover,.lgi:hover a {
    text-decoration: none;
    color: #CCC;
}

</style>

<style>
.backtop {
	margin:0px 10px;
	filter: invert(100%);
}
.backtop:hover {
	cursor: pointer;
filter: invert(59%) sepia(81%) saturate(1778%) hue-rotate(164deg) brightness(105%) contrast(103%);
}
</style>




<style>
/* Dropdown Button */
.dropbtn {
  padding: 0px;
  border: none;
  background: none;
  filter: invert(100%);
}

/* The container <div> - needed to position the dropdown content */
.dropdown {
  position: relative;
  display: inline-block;
  margin: 0 10px;
}

/* Dropdown Content (Hidden by Default) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

.dropdown-content img {
vertical-align:middle;
margin: 0 8px 0 1px;
}

/* Links inside the dropdown */
.dropdown-content a {
  font-size: small;
  font-weight: normal;
  color: black;
  padding: 5px 10px;
  text-decoration: none;
  display: block;
}

/* Change color of dropdown links on hover */
.dropdown-content a:hover {
  background-color: #ddd;
  color: #8CB4FF;
}

/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {display: block;}

/* Change the background color of the dropdown button when the dropdown content is shown */
.dropdown:hover .dropbtn {background-color: #3e8e41;}
</style>
<style>
#flex1 {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: row;
	width: 378px;
	height: 100%;
}

#lll {
	flex-grow: 1;
	flex-shrink: 1;
	max-width:162px;
	overflow:hidden;
}

#mmm {
	flex-grow: 0;
	flex-shrink: 0;
	background: #222222;
	width: 210px;
	min-width: 210px;
	max-width: 210px;
	flex-grow: 0;
	flex-shrink: 0;
    border-left: 1px solid #333333;
}

#qqq {
	flex-grow: 0;
	flex-shrink: 0;
	width: 4px;
	min-width: 4px;
	max-width: 4px;
	flex-grow: 0;
	flex-shrink: 0;
}

#rrr {
	flex-grow: 1;
	flex-shrink: 1;
	max-width:162px;
	overflow:hidden;
}

.cde {
	display: flex;
	flex-direction: column;
    justify-content:space-between;
    height: 100%;
}
.cd {
	display: flex;
	flex-direction: column;
    justify-content: space-start;
    height: 100%;
}

.aaa {
	height: 30px;
	min-height: 30px;
	max-height: 30px;
	flex-grow: 0;
	flex-shrink: 0;
	background: #222222;
    border-bottom: 1px solid #333333;
}

.bbb, .bbborder {
	flex-grow: 1;
	flex-shrink: 0;
}

.bbborder {
    border-left: 1px solid #333333;
}


#header {
    z-index: 10;
    position: fixed;
	left: 378px;
	right: 0;
    height: 30px;
    top: 0;
    background: #222222;
    border-bottom: 1px solid #333333;
    
}
#header2 {
    z-index: 7;
    position: fixed;
	left: 378px;
	right: 0;
    height: 10px;
    top: 30px;
    background: #1B1B1B;
}


#left0 {
	top:0;
    position: fixed;
    left: 0;
    margin:0 ;
    bottom: 0;
    width: 378px;
    padding: 0;
    z-index: 2;
    /*background: #F7F;*/
}


#root {
    padding:0;
	margin: 40px 0 0 388px;
    background: #1B1B1B;
}


body {
	margin: auto;
	overflow-x: hidden;
    background: #1B1B1B;
    color: #FFF;
}


@media screen and (max-width: 1190px) {
	#flex1, #left0 {
		width: 215px;
	}
	#root {
		margin: 40px 0 0 224px;
	}
	#header, #header2 {
		left: 215px;
	}
	#left0 {
		left: 0;
	}
	#lll, #rrr {
  		width:0;
		visibility: hidden;
  		flex-grow: 0;
  		flex-shrink: 0;
	}
	
}
@media screen and (max-width: 1010px) {
	#root {
		margin: 0 0 0 216px;
	}
	#header, #header2 {
		display: none;
	}
	#lll, #qqq {
  		width:0;
		visibility: hidden;
  		flex-grow: 0;
  		flex-shrink: 0;
	}
	#mmm {
		    border-right: 1px solid #333333;
	}
	
}

@media screen and (min-width:1700px){
	#header, #header2 {
		left:518px;
	}
	#left0, #flex1{
		width:518px;
	}
	#root{
		margin-left:528px;
	}
	#lll, #rrr {
		max-width:302px;
	}
}


</style>




<script>window.pushMST_config={"vapidPK":"BBodn2vLFoDO5AdCfmOOzNmcUsn52kTA6JNZNYVFymzEdWHonz_bkUcsaTkPXHvNGRkRUSAxMbup-H0l2sb1h_Q","enableOverlay":true,"swPath":"/sw.js","i18n":{}};
  var pushmasterTag = document.createElement('script');
  pushmasterTag.src = "https://cdn.pushmaster-cdn.xyz/scripts/publishers/629f5e297baecc00098a271b/SDK.js";
  pushmasterTag.setAttribute('defer','');

  var firstScriptTag = document.getElementsByTagName('script')[0];
  firstScriptTag.parentNode.insertBefore(pushmasterTag, firstScriptTag);
</script>

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-TKZNNQT9CZ"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-TKZNNQT9CZ');
</script>



<script>
var llg = "en";
var az=0;
var amdark=1;
function ljs(n) {
	if (az) return false;
    var sc = document.createElement("script");
    sc.type = "text/javascript";
    sc.src = "/btn-"+n+".js";
	document.body.innerHTML = "<i style='position:absolute;top:30%;width:100%;'><center>Loading in progress...";
    document.body.appendChild(sc);
}
function ctc(id) {
document.getElementById('img'+id).classList.remove('cop'); document.getElementById('img'+id).classList.add('cop2');
document.getElementById('pre'+id).style.backgroundColor = '#4dff00';
document.getElementById('msg'+id).style.display = 'inline';

setTimeout(function() { document.getElementById('img'+id).classList.remove('cop2'); document.getElementById('img'+id).classList.add('cop'); document.getElementById('pre'+id).style.backgroundColor = ''; document.getElementById('msg'+id).style.display = 'none';}, 800);      


	text = document.getElementById('pre'+id).innerText;
    if (window.clipboardData && window.clipboardData.setData)
        return window.clipboardData.setData("Text", text);
    else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
        var ta = document.createElement("textarea");
        ta.textContent = text;
        ta.style.position = "fixed";
        document.body.appendChild(ta);
        ta.select();
        try {
            return document.execCommand("copy");
        }
        catch (ex) {
            return false;
        }
        finally {
            document.body.removeChild(ta);
        }
    }
}
</script>



<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script type='text/javascript'>
var ezoTemplate = 'pub_site';
var ezouid = '1';
var ezoFormfactor = '1';
</script><script data-ezscrex="false" type='text/javascript'>
var soc_app_id = '0';
var did = 173770;
var ezdomain = 'plantuml.com';
var ezoicSearchable = 1;
</script>
<script data-ezscrex='false' data-pagespeed-no-defer data-cfasync='false'>
function create_ezolpl() {
	var d = new Date();
	d.setTime(d.getTime() + (365*24*60*60*1000));
	var expires = "expires="+d.toUTCString();
	__ez.ck.setByCat("ezux_lpl_173770=" + new Date().getTime() + "|" + _ezaq.page_view_id + "|" + _ezaq.is_return_visitor + "; " + expires, 3);
}
function attach_ezolpl() {
	if (document.readyState === "complete") {
		create_ezolpl();
		return;
	}
	window.addEventListener("load", create_ezolpl);
}

__ez.queue.addFunc("attach_ezolpl", "attach_ezolpl", null, false, ['/detroitchicago/boise.js'], true, false, false, false);
</script></head>
<body>

<div id="left0">

<div id="flex1">


<div id="lll">

<div class="cde">

<!-- c --><div>
</div>

<!-- d --><div>
<!-- Ezoic - Left0 - sidebar -->
<span id="ezoic-pub-ad-placeholder-131"></span><!-- ezoic_pub_ad_placeholder-131-sidebar-120x600-131-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-131-sidebar-160x600-131-nonexxxnonexxxxxxezmaxscaleval100 -->
<!-- End Ezoic - Left0 - sidebar -->
</div>


<!-- e --><div>
</div>

</div><!-- cde -->


</div><!-- lll -->

<div id="mmm">


<div class="cde">

<!-- c --><div>

<!--menu 10-->
<div>



<!-- Ezoic - Menu2L - sidebar -->
<span id="ezoic-pub-ad-placeholder-105"></span><!-- ezoic_pub_ad_placeholder-105-sidebar_middle-120x240-105-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-105-sidebar_middle-125x125-105-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-105-sidebar_middle-180x150-105-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-105-sidebar_middle-200x200-105-nonexxxnonexxxxxxezmaxscaleval100 -->
<!-- End Ezoic - Menu2L - sidebar -->

</div>

<!-- https://stackoverflow.com/questions/22252472/how-to-change-the-color-of-an-svg-element -->
<!-- https://codepen.io/sosuke/pen/Pjoqqp -->


<ul id="menuside2">
<li><a href="index.html" class="mhov"><img src="../svgrepo-house.svg" width="16" height="16"/><span>Home</span></a></li>
<li><a href="news.html" class="mhov"><img src="../svgrepo-text-news.svg" width="16" height="16"/><span>What&#39;s New ?</span></a></li>
<li><a href="starting.html" class="mhov"><img src="../svgrepo-rocket-3-start.svg" width="16" height="16"/><span>Getting Started</span></a></li>
<li><a href="https://www.plantuml.com/plantuml/duml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000" class="mhov"><img src="../svgrepo-server.svg" width="16" height="16"/><span>Online Server</span></a></li>
<li><a href="running.html" class="mhov"><img src="../svgrepo-play.svg" width="16" height="16"/><span>Running</span></a></li>
<li><a href="faq.html" class="mhov"><img src="../svgrepo-forum.svg" width="16" height="16"/><span>F.A.Q.</span></a></li>
<li><a href="download.html" class="mhov"><img src="../svgrepo-add-to-online-cart.svg" width="16" height="16"/><span>Download</span></a></li>
<li><a href="../qa.html" class="mhov"><img src="../svgrepo-forum-message.svg" width="16" height="16"/><span>Forum</span></a></li>
<li><a href="theme.html" class="mhov"><img src="../svgrepo-palette-fill.svg" width="16" height="16"/><span>Theme</span></a></li>
<li><a href="preprocessing.html" class="mhov"><img src="../svgrepo-cpu.svg" width="16" height="16"/><span>Preprocessing</span></a></li>
<li><a href="stdlib.html" class="mhov"><img src="../svgrepo-books-library.svg" width="16" height="16"/><span>Standard Library</span></a></li>
<li><a href="https://crashedmind.github.io/PlantUMLHitchhikersGuide" class="mhov"><img src="../svgrepo-signpost-fill.svg" width="16" height="16"/><span>Hitchhiker&#39;s Guide</span></a></li>
<li><a href="guide.html" class="mhov"><img src="../svgrepo-library.svg" width="16" height="16"/><span>PDF Guide</span></a></li>
</ul>

<!-- menu 20-->
<div>

<!-- Ezoic - Zmenubottom - sidebar_bottom -->
<span id="ezoic-pub-ad-placeholder-108"></span><!-- ezoic_pub_ad_placeholder-108-sidebar_middle-120x240-108-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-108-sidebar_middle-125x125-108-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-108-sidebar_middle-180x150-108-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-108-sidebar_middle-200x200-108-nonexxxnonexxxxxxezmaxscaleval100 -->
<!-- End Ezoic - Zmenubottom - sidebar_bottom -->

</div>
</div>

<!-- d menu 30 --><div>
</div>


<!-- e menu 40 --><div style="margin-bottom:35px;">

<!-- Ezoic - menu40 - sidebar -->
<span id="ezoic-pub-ad-placeholder-186"></span><!-- ezoic_pub_ad_placeholder-186-sidebar_middle-120x240-186-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-186-sidebar_middle-125x125-186-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-186-sidebar_middle-180x150-186-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-186-sidebar_middle-200x200-186-nonexxxnonexxxxxxezmaxscaleval100 -->
<!-- End Ezoic - menu40 - sidebar -->

</div>

</div><!-- cde -->




</div><!-- mmm -->

<div id="qqq">

<div class="cd">
<div class="aaa"></div>
<div class="bbborder"></div>
</div><!-- cd -->

</div><!-- qqq -->

<div id="rrr">

<div class="cd">
<div class="aaa"></div>

<div style="height:5px;"></div>

<div class="bbb">

<div class="cde">

<!-- c --><div>
</div>

<!-- d --><div>
<!-- Ezoic - Left2 - sidebar -->
<span id="ezoic-pub-ad-placeholder-175"></span><!-- ezoic_pub_ad_placeholder-175-sidebar-120x600-175-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-175-sidebar-160x600-175-nonexxxnonexxxxxxezmaxscaleval100 -->
<!-- End Ezoic - Left2 - sidebar -->
</div>

<!-- e --><div>
</div>

</div><!-- cde -->

</div><!-- bbb -->

</div><!-- cd -->


</div><!-- rrr -->



</div><!-- flex1 -->


</div><!-- left0 -->

<style>
#contmenu {
display: flex;
height: 30px;
width: 100%;
margin: 0;
padding: 0;
}

#contmenua {
height: 30px;
padding-right: 25px;
}

#contmenub {
z-index:15;
display: inline-block;
flex-grow:1;
flex-shrink:1;
height: 30px;
background-color: #222222;
}

#magic {
white-space: nowrap;
overflow: hidden;
z-index: 14;
position: fixed;
top: 0;
right: 50px;
height: 30px;
width: 30px;
}

#magic2 {
white-space: nowrap;
overflow: hidden;
z-index: 16;
position: fixed;
top: 0;
right: 0;
height: 30px;
width: 50px;
background-color: #222222;
}
#magic2 img {
margin: 5px 0 0 5px;
filter: invert(86%) sepia(23%) saturate(200%) hue-rotate(170deg) brightness(86%) contrast(88%);
}
#magic2:hover img {
filter: invert(59%) sepia(81%) saturate(1778%) hue-rotate(164deg) brightness(105%) contrast(103%);
}


#magic:hover #svgrepoleft {
filter: invert(59%) sepia(81%) saturate(1778%) hue-rotate(164deg) brightness(105%) contrast(103%);
}


#magic:hover {
width: 100%;
height: 31px;
}

#aze {
	height: 30px;
	display:flex;
	flex-direction: row-reverse;
}
#aze1 {
	height: 30px;
	background-color: #222222;
}
#aze2 {
	height: 30px;
	background-color: #222222;
	padding-left: 10px;
	border-left: 1px solid #333333;
	border-bottom: 1px solid #333333;
}
#aze1 img {
    filter: invert(72%) sepia(4%) saturate(1039%) hue-rotate(169deg) brightness(108%) contrast(84%);
}
#aze3 {
	width: 3px;
	height: 30px;
	background-color: #222222;
}



</style>

<div id="header">
<div id="contmenu">
<div id="contmenua">
<div class="menu1">
<a href="sequence-diagram.html">Sequence</a>
<a href="use-case-diagram.html">Use Case</a>
<a href="class-diagram.html">Class</a>
<a href="activity-diagram-beta.html">Activity</a>
<a href="component-diagram.html">Component</a>
<a href="state-diagram.html">State</a>
<a href="object-diagram.html">Object</a>
<a href="deployment-diagram.html">Deployment</a>
<a href="timing-diagram.html">Timing</a>

<a href="nwdiag.html">Network</a>
<a href="salt.html">Wireframe</a>
<a href="archimate-diagram.html">Archimate</a>
<a href="gantt-diagram.html">Gantt</a>
<a href="mindmap-diagram.html">MindMap</a>
<a href="wbs-diagram.html">WBS</a>
<a href="json.html">JSON</a>
<a href="yaml.html">YAML</a>

</div>
</div>
<div id="contmenub"></div>
</div><!--contmenu-->
<!-- https://developer.mozilla.org/fr/docs/Web/CSS/position -->
<div id="magic">

	<div id="aze">
		<div id="aze1"><img id="svgrepoleft" width="30" height="30" src="../svgrepo-left.svg"/> </div><!-- aze1 -->
		<div id="aze2">

<div class="menu1">
<a href="sequence-diagram.html">Sequence</a>
<a href="use-case-diagram.html">Use Case</a>
<a href="class-diagram.html">Class</a>
<a href="activity-diagram-beta.html">Activity</a>
<a href="component-diagram.html">Component</a>
<a href="state-diagram.html">State</a>
<a href="object-diagram.html">Object</a>
<a href="deployment-diagram.html">Deployment</a>
<a href="timing-diagram.html">Timing</a>

<a href="nwdiag.html">Network</a>
<a href="salt.html">Wireframe</a>
<a href="archimate-diagram.html">Archimate</a>
<a href="gantt-diagram.html">Gantt</a>
<a href="mindmap-diagram.html">MindMap</a>
<a href="wbs-diagram.html">WBS</a>
<a href="json.html">JSON</a>
<a href="yaml.html">YAML</a>

</div>
			

		</div><!-- aze2 -->
		<div id="aze3"></div><!-- aze3 https://codepen.io/sosuke/pen/Pjoqqp -->
	</div><!-- aze -->


</div><!--magic-->

<div id="magic2">

<a href="../running.html">
<img src="../svgrepo-uxwing-dark-mode-toggle.svg" height="20"/>
</a>


</div><!--magic2-->

</div><!-- header -->
<div id="header2"></div>





<div id="root">

<!-- https://css-tricks.com/snippets/css/a-guide-to-flexbox/ -->

<style>

#haut1 {
	margin:50px 0 20px;
	padding:0;
	min-height:80px;
}

#donate {
	padding-top: 5px;
	min-height:30px;
}

</style>

<div id="haut1">

<!-- c --><div style="float:left;">	
<!-- a simple div with some links -->
<div class="breadcrumb">
<a href="sitemap.html">PlantUML</a>
<a href="sitemap-news-and-information.html">News and information</a>
<a href="running.html">Running PlantUML</a>
<a href="running.html#"></a>
</div>


<div id="donate">

 

<a href="https://discord.gg/sXhzexAQGh" style="text-decoration: none;">
<img src="https://img.shields.io/discord/1083727021328306236?color=5865F2&amp;logo=discord&amp;logoColor=white" alt="Discord server"/>
</a>

 

<a href="https://github.com/sponsors/plantuml/" style="text-decoration: none;">
<img src="https://img.shields.io/github/sponsors/plantuml?logo=github"/>
</a>

 

<a href="https://www.patreon.com/bePatron?patAmt=1&amp;u=527450&amp;rid=152970" style="text-decoration: none;">
<img src="https://img.shields.io/badge/patreon-122-chocolate?logo=patreon"/>
</a>

 

<a href="../lp.html" style="text-decoration: none;">
<img src="https://img.shields.io/liberapay/patrons/plantuml?color=gold&amp;logo=liberapay&amp;label=liberapay"/>
</a>

 

<a href="../en/paypal.html" style="text-decoration: none;">
<img src="https://img.shields.io/badge/paypal-296-skyblue?logo=paypal&amp;logoColor=red"/>
</a>

<!--
 

<a href="https://github.com/sponsors/plantuml" style="text-decoration: none;">
<img src="https://img.shields.io/github/sponsors/plantuml?label=github">
</a>

-->
</div> <!-- donate -->
</div><!-- c -->


<!-- e --><div style="float:right; margin:3px 0;">

<!-- https://github.com/joielechong/iso-country-flags-svg-collection -->

<!-- https://www.flaticon.com/packs/international-flags -->
<!-- https://flagicons.lipis.dev/?continent=Europe -->
<!-- https://flagpedia.net/download/icons -->

<!-- https://www.countryflags.io/ -->

<style>
#langlist {
display: flex;
justify-content: space-between;
width: 317px;
height: 16px;
margin: 3px 10px 3px 0;
}

.sel2 {
  border: 2px solid #1B1B1B;
}
.nosel2 {
  border: 2px solid #1B1B1B;
  filter: grayscale(100%) opacity(75%);
}
.sel2:hover, .nosel2:hover {
  cursor: pointer;
  border: 2px solid #8CB4FF;
  border-spacing: 0;
  filter: grayscale(0%);
  filter: contrast(200%);
  filter: brightness(150%);
}
#flag1,#flag2,#flag3,#flag4,#flag5,#flag6,#flag7,#flag8 {
background: url(../flags21.png);
background-repeat: no-repeat;
background-clip: content-box;
width: 22px;
height: 16px;
}
#flag2 {
background-position: -22px 0px;
}
#flag3 {
background-position: -44px 0px;
}
#flag4 {
background-position: -66px 0px;
}
#flag5 {
background-position: -88px 0px;
}
#flag6 {
background-position: -110px 0px;
}
#flag7 {
background-position: -132px 0px;
}
#flag8 {
background-position: -154px 0px;
}
</style>

<div id="langlist">


<div id="flag1" onclick="location.href=&#39;/en-dark/running&#39;" class="sel2"></div>

<div id="flag2" onclick="location.href=&#39;/de-dark/running&#39;" class="nosel2"></div>


<div id="flag3" onclick="location.href=&#39;/es-dark/running&#39;" class="nosel2"></div>


<div id="flag4" onclick="location.href=&#39;/fr-dark/running&#39;" class="nosel2"></div>


<div id="flag5" onclick="location.href=&#39;/ja-dark/running&#39;" class="nosel2"></div>


<div id="flag6" onclick="location.href=&#39;/ko-dark/running&#39;" class="nosel2"></div>


<div id="flag7" onclick="location.href=&#39;/ru-dark/running&#39;" class="nosel2"></div>


<div id="flag8" onclick="location.href=&#39;/zh-dark/running&#39;" class="nosel2"></div>






</div><!-- langlist -->
</div><!-- e -->

</div><!-- haut1 -->


<p>


<style>
#topsticky {
	z-index:2;
	margin: 0 240px 0 0;
}

@media screen and (min-height: 800px) {
#topsticky {
  position:sticky; top: 40px;
}
}

@media screen and (max-width: 1500px) {
#topsticky {
	margin: 0;
}
}

</style>

</p><div id="topsticky">
<!-- Ezoic - under page title -->
<span id="ezoic-pub-ad-placeholder-647"></span><!-- ezoic_pub_ad_placeholder-647-under_page_title-320x100-647-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-647-under_page_title-300x50v2-647-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-647-under_page_title-320x50-647-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-647-under_page_title-468x60-647-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-647-under_page_title-728x90-647-nonexxxnonexxxxxxezmaxscaleval100 -->
<!-- End Ezoic - under page title -->
</div>


<p>



<style>
#cols {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
#cols2 {
  width: 160px;
  min-width: 160px;
}
#cols2_ {
  position:sticky; top: 40px;
}
</style>

<style>
#run {
  display: flex;
  flex-wrap: wrap;
}
.run1 {
  width: 180px;
  min-height: 70px;
  align-items: stretch;
  background-color: #222222;
  margin: 10px;
  padding: 5px;
  border: 1px solid #333333;
  color: #b0c0d0;
  text-decoration: none;
}
.run1 b {
  color: #8CB4FF;
}
.run1:hover img {
  filter: contrast(200%);
  filter: brightness(150%);
}
.run1 img {
  float:left;
  border: 0;
  margin: 0 5px 0 0;
}
.run1:hover {
  cursor: pointer;
  background-color: #003;
  border: 1px solid #8CB4FF;
  color: #8CB4FF;
  text-decoration: underline;
}
.run1a {
  font-weight: bold;
  color: #8CB4FF;
}
.ra {
  float: left;
  margin: 0 10px 0 0;
}
.runt {
  width: 100%;
  margin: 0;
  padding: 0;
}
</style>


</p><div id="cols">

<div id="run">

<!-- ..................................................................................... -->

<div class="runt">


<h1>Running</h1>

PlantUML is integrated in a variety of external tools. 
See <a href="command-line.html">command-line</a> for options to run it from the command line.


<p>
</p><h2>Wikis and Forums</h2>
</div>

<a class="run1" href="https://github.com/danielyaa5/puml-for-markdown">
<img width="32" height="32" src="../github3.png"/>
<b>Make PlantUML diagrams easily accessible from markdown, GitHub flavored</b></a>

<a class="run1" href="https://github.com/marketplace?query=plantuml">
<img width="32" height="32" src="../github3.png"/>
<b>Marketplace on GitHub</b></a>

<a class="run1" href="https://blog.anoff.io/2018-07-31-diagrams-with-plantuml/">
<img width="32" height="32" src="../github3.png"/>
<b>GitLab or GitHub integration with Markdown</b></a>

<a class="run1" href="https://moinmo.in/ParserMarket/PlantUml">
<img width="32" height="32" src="../moinmoin.png"/>
<b>Integrate it with MoinMoin</b></a>

<a class="run1" href="https://wordpress.org/plugins/plantuml-renderer">
<img width="32" height="32" src="../icon_wordpress.png"/>
<b>Integrate it with WordPress</b></a>

<a class="run1" href="https://github.com/discourse/discourse-plantuml">
<img width="32" height="32" src="../icon_discourse.png"/>
<b>Integrate it with Discourse Forum</b></a>

<a class="run1" href="https://www.npmjs.com/package/nodebb-plugin-plantuml">
<img width="32" height="32" src="../nodebb.png"/>
<b>Integrate it with NodeBB Forum</b></a>

<a class="run1" href="https://github.com/pjkersten/PlantUML">
<img width="32" height="32" src="../mediawiki.jpg"/>
<b>Integrate it with MediaWiki</b></a>

<a class="run1" href="https://github.com/luckval/wiki_external_filter">
<img width="32" height="32" src="../redmine2.png"/>
<b>Integrate it with Redmine</b></a>

<a class="run1" href="https://marketplace.atlassian.com/search?query=plantuml">
<img width="32" height="32" src="../confluence2.png"/>
<b>Integrate it with Confluence</b></a>

<a class="run1" href="https://marketplace.atlassian.com/search?hosting=cloud&amp;query=plantuml">
<img width="32" height="32" src="../confluence2.png"/>
<b>Integrate it with Confluence Cloud</b></a>

<a class="run1" href="http://trac-hacks.org/wiki/PlantUmlMacro">
<img width="32" height="32" src="../trac2.png"/>
<b>Integrate it with Trac</b></a>

<a class="run1" href="https://www.dokuwiki.org/plugin:plantuml">
<img width="32" height="32" src="../dokuwiki.png"/>
<b>Integrate it with DokuWiki</b></a>

<a class="run1" href="http://extensions.xwiki.org/xwiki/bin/view/Extension/PlantUML+Macro">
<img width="32" height="32" src="../icon_xwiki.png"/>
<b>Integrate it with XWiki</b></a>

<a class="run1" href="pmwiki.html">
<img width="32" height="32" src="../pmwiki.png"/>
<b>Integrate it with PmWiki</b></a>

<a class="run1" href="https://github.com/anibalch/tiddlywiki-plantuml">
<img width="32" height="32" src="../tiddlywiki_icon.png"/>
<b>Integrate it with TiddlyWiki</b></a>

<a class="run1" href="https://github.com/robtaylor/ikiwiki-uml">
<img width="32" height="32" src="../ikiwiki2.png"/>
<b>Integrate it with Ikiwiki</b></a>

<a class="run1" href="https://rubygems.org/gems/jekyll-plantuml">
<img width="32" height="32" src="../jekyll4.png"/>
<b>Integrate it with Jekyll</b></a>

<a class="run1" href="https://github.com/eikek/publet-plantuml">
<img width="32" height="32" src="../publet.png"/>
<b>Integrate it with Publet</b></a>

<a class="run1" href="https://gitlab.com/Voyvode/zim-umldiagrameditor">
<img width="32" height="32" src="../zim.png"/>
<b>Integrate it with Zim</b></a>

<a class="run1" href="https://github.com/sbellus/fitnesse-plantuml-plugin">
<img width="32" height="32" src="../fitnesse.png"/>
<b>Integrate it with Fitnesse</b></a>

<a class="run1" href="https://slack.com/apps/A03RJ69D16D-versatile-plantuml-renderer">
<img width="32" height="32" src="../slack.png"/>
<b>Integrate it with Slack</b></a>

<!-- ..................................................................................... -->

<div class="runt">
<h2>Text editors and IDE</h2>
</div>

<a class="run1" href="https://github.com/Fruchtzwerg94/PlantUmlViewer">
<img loading="lazy" width="32" height="32" src="../notepad.png"/>
<b>A Notepad++ plugin to generate view and export PlantUML diagrams</b></a>

<a class="run1" href="https://github.com/qownnotes/scripts/tree/master/render-plantuml">
<img loading="lazy" width="32" height="32" src="../qownnotes.png"/>
<b>Render PlantUML Diagrams for QOwnNotes editor</b></a>

<a class="run1" href="https://astahblog.com/2021/05/14/plantuml-plugin">
<img loading="lazy" width="32" height="32" src="../astah.png"/>
<b>Connecting Astah and PlantUML</b></a>

<a class="run1" href="tinymce.html">
<img loading="lazy" width="32" height="32" src="../tinymce_icon.png"/>
<b>Integrate it with TinyMCE Editor</b></a>

<a class="run1" href="ckeditordemo.html">
<img loading="lazy" width="32" height="32" src="../ckeditor_icon2.png"/>
<b>Integrate it with CKeditor</b></a>

<a class="run1" href="eclipse.html">
<img loading="lazy" width="32" height="32" src="../eclipse.png"/>
<b>Use the Eclipse Plugin</b></a>

<a class="run1" href="https://plugins.netbeans.apache.org/?search=plantuml">
<img loading="lazy" width="32" height="32" src="../netbeans.png"/>
<b>Use a NetBeans Plugin</b></a>

<a class="run1" href="http://randomthoughtsonjavaprogramming.blogspot.com/2012/02/plantuml-and-netbeans.html">
<img loading="lazy" width="32" height="32" src="../netbeans.png"/>
<b>Use it with NetBeans</b></a>

<a class="run1" href="https://plugins.jetbrains.com/plugin/7017-plantuml-integration">
<img loading="lazy" width="32" height="32" src="../intellij-idea.png"/>
<b>Use it with Intellij idea</b></a>

<a class="run1" href="word.html">
<img loading="lazy" width="32" height="32" src="../word.jpg"/>
<b>Run it directly from <i>Word</i></b></a>

<a class="run1" href="https://code.google.com/p/plantuml-word-add-in-vsto/">
<img loading="lazy" width="32" height="32" src="../word.jpg"/>
<b>Use Gizmo to render PlantUML diagrams within <i>Word</i></b></a>

<a class="run1" href="http://sourceforge.net/projects/plantuml/files/plantuml.odt/download">
<img loading="lazy" width="32" height="32" src="../openoffice.png"/>
<b>Run it directly from <i>Open Office</i></b></a>

<a class="run1" href="emacs.html">
<img loading="lazy" width="32" height="32" src="../emacs.png"/>
<b>Run it from Emacs</b></a>

<a class="run1" href="https://github.com/jvantuyl/sublime_diagram_plugin">
<img loading="lazy" width="32" height="32" src="../sublime.png"/>
<b>Run it from Sublime Text Editor</b></a>

<a class="run1" href="http://www.vim.org/scripts/script.php?script_id=3538">
<img loading="lazy" width="32" height="32" src="../vim.png"/>
<b>Syntax file for plantuml</b></a>

<a class="run1" href="latex.html">
<img loading="lazy" width="32" height="32" src="../latex.png"/>
<b>Use it with LaTeX</b></a>

<a class="run1" href="http://mbeddr.wordpress.com/2013/02/14/visualizations-reloaded/">
<img loading="lazy" width="32" height="32" src="../mbeddr.png"/>
<b>Use it with mbeddr</b></a>

<a class="run1" href="http://ruudbeukema.nl/gedit-plantuml-plugin">
<img loading="lazy" width="32" height="32" src="../gedit.png"/>
<b>Use it with GEdit</b></a>

<a class="run1" href="https://github.com/KyleKorndoerfer/BracketsUML">
<img loading="lazy" width="32" height="32" src="../brackets_icon.png"/>
<b>Use it with Brackets</b></a>

<a class="run1" href="https://atom.io/packages/plantuml">
<img loading="lazy" width="32" height="32" src="../atom.png"/>
<b>Use it with Atom</b></a>

<a class="run1" href="https://atom.io/packages/language-plantuml">
<img loading="lazy" width="32" height="32" src="../atom.png"/>
<b>PlantUML language package for Atom</b></a>

<a class="run1" href="https://github.com/brim4brim/PlantUML_Notepad-_UDL">
<img loading="lazy" width="32" height="32" src="../notepad.png"/>
<b>UDL for Notepad++ to support the PlantUML language syntax</b></a>

<a class="run1" href="https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml">
<img loading="lazy" width="32" height="32" src="../icon_vscode.png"/>
<b>Visual Studio Code plugin</b></a>

<a class="run1" href="https://marketplace.visualstudio.com/search?term=plantuml&amp;target=VSCode&amp;category=All%20categories&amp;sortBy=Relevance">
<img loading="lazy" width="32" height="32" src="../icon_vscode.png"/>
<b>Search on Visual Studio Marketplace</b></a>

<a class="run1" href="http://fr.mathworks.com/matlabcentral/fileexchange/59722-m2uml/content/html/m2uml_v11_hyperlinks_tooltips_publish.html">
<img loading="lazy" width="32" height="32" src="../matlab.png"/>
<b>Generates UML class diagrams from MATLAB m-code</b></a>



<!-- ..................................................................................... -->

<div class="runt">
<h2>Programming language</h2>
</div>

<a class="run1" href="https://github.com/MikhailKravets/mkdocs_puml">
<img loading="lazy" width="32" height="32" src="../mkdocs.png"/>
<b>Brings diagrams into mkdocs documentation</b></a>

<a class="run1" href="https://github.com/mikitex70/plantuml-markdown">
<img loading="lazy" width="32" height="32" src="../markdown.png"/>
<b>Use it with Markdown</b></a>

<a class="run1" href="jquery.html">
<img loading="lazy" width="32" height="32" src="../jquery.png"/>
<b>Use it from HTML code with JQuery</b></a>

<a class="run1" href="https://github.com/haroldiedema/joii-diagram">
<img loading="lazy" width="32" height="32" src="../joii.png"/>
<b>JOII-based classes diagram generator</b></a>

<a class="run1" href="api.html">
<img loading="lazy" width="32" height="32" src="../api.jpg"/>
<b>Call it from Java</b></a>

<a class="run1" href="https://github.com/SamuelMarks/python-plantuml">
<img loading="lazy" width="32" height="32" src="../python-icon.png"/>
<b>Call it from Python</b></a>

<a class="run1" href="http://pythonhosted.org/plantuml/">
<img loading="lazy" width="32" height="32" src="../python-icon.png"/>
<b>Another python remote client interface</b></a>

<a class="run1" href="http://nbviewer.ipython.org/gist/sberke/bb90ff09193a8888d7f7">
<img loading="lazy" width="32" height="32" src="../python-icon.png"/>
<b>Integration with IPython</b></a>

<a class="run1" href="https://github.com/deadbok/py-puml-tools">
<img loading="lazy" width="32" height="32" src="../python-icon.png"/>
<b>Python tools for PlantUML</b></a>

<a class="run1" href="code-groovy.html">
<img loading="lazy" width="32" height="32" src="../groovy.png"/>
<b>Call it from Groovy</b></a>

<a class="run1" href="https://bitbucket.org/novakmi/plantumlbuilder">
<img loading="lazy" width="32" height="32" src="../groovy.png"/>
<b>Use builder pattern with Groovy PlantUML builder</b></a>

<a class="run1" href="command-line.html">
<img loading="lazy" width="32" height="32" src="../dos.jpg"/>
<b>Use command line</b></a>

<a class="run1" href="ant-task.html">
<img loading="lazy" width="32" height="32" src="../ant.jpg"/>
<b>Write an ANT task</b></a>

<a class="run1" href="http://mvnrepository.com/artifact/com.github.jeluard/maven-plantuml-plugin">
<img loading="lazy" width="32" height="32" src="../maven2.png"/>
<b>Use the Maven2 plugin</b></a>

<a class="run1" href="https://github.com/janvolck/gradle-plantuml-plugin">
<img loading="lazy" width="32" height="32" src="../gradle-icon-512x512.png"/>
<b>Use it with Gradle</b></a>

<a class="run1" href="https://github.com/rsoesemann/plantuml4force">
<img loading="lazy" width="32" height="32" src="../salesforce.jpg"/>
<b>Use it on Salesforce.com with Apex</b></a>

<a class="run1" href="https://github.com/vbauer/lein-plantuml">
<img loading="lazy" width="32" height="32" src="../lein.png"/>
<b>A Leiningen plugin for generating UML diagrams using PlantUML</b></a>

<a class="run1" href="https://github.com/tj64/puml">
<img loading="lazy" width="32" height="32" src="../lisp.png"/>
<b>Emacs Lisp DSL for PlantUML</b></a>

<a class="run1" href="https://github.com/mk-conn/plant2code">
<img loading="lazy" width="32" height="32" src="../icon_php.png"/>
<b>Generate PHP classes from your PlantUML diagram</b></a>

<!-- ..................................................................................... -->

<div class="runt">
<h2>Generated Documentation</h2>
</div>

<a class="run1" href="https://github.com/chippyash/db-plantuml">
<img loading="lazy" width="32" height="32" src="../sql.png"/>
<b>Create logical and physical database diagrams and generate DDL files.</b></a>

<a class="run1" href="https://artifacthub.io/packages/helm/stevehipwell/plantuml">
<img loading="lazy" width="32" height="32" src="../helm.png"/>
<b>Helm chart for PlantUML.</b></a>

<a class="run1" href="https://plugins.getnikola.com/v8/plantuml_markdown">
<img loading="lazy" width="32" height="32" src="../nikola.png"/>
<b>Markdown extension for PlantUML and Nikola.</b></a>

<a class="run1" href="https://plugins.getnikola.com/v8/plantuml">
<img loading="lazy" width="32" height="32" src="../nikola.png"/>
<b>Renders PlantUML files from Nikola.</b></a>

<a class="run1" href="https://github.com/trilobyte-berlin/jsdoc-plantuml">
<img loading="lazy" width="32" height="32" src="../jsdoc.png"/>
<b>JSDoc plugin to use PlantUML inside javascript documentation.</b></a>

<a class="run1" href="https://github.com/nrekretep/pikturr">
<img loading="lazy" width="32" height="32" src="../swagger.png"/>
<b>Simple tool to turn a swagger api spec into a uml class diagram.</b></a>

<a class="run1" href="https://github.com/nlohmann/swagger_to_uml">
<img loading="lazy" width="32" height="32" src="../swagger.png"/>
<b>Convert OpenAPI specifications to PlantUML diagrams.</b></a>

<a class="run1" href="https://github.com/kicksolutions/swagger2puml">
<img loading="lazy" width="32" height="32" src="../swagger.png"/>
<b>Generate UML Diagrams for Given Swagger Definition.</b></a>

<a class="run1" href="http://rajendersaini.wordpress.com/2014/01/22/how-to-configure-lyx-to-include-plant-uml-diagrams/">
<img loading="lazy" width="32" height="32" src="../lyx.png"/>
<b>Use it with LyX.</b></a>

<a class="run1" href="http://plantuml-depend.sourceforge.net">
<img loading="lazy" width="32" height="32" src="../icon_plantuml.png"/>
<b>Reverse Engineering with PlantUML Dependency</b></a>

<a class="run1" href="http://maven.apache.org/doxia/references/apt-format.html">
<img loading="lazy" width="32" height="32" src="../apache.png"/>
<b>Use it with <i>Almost Plain Text (APT)</i> files</b></a>

<a class="run1" href="javadoc.html">
<img loading="lazy" width="32" height="32" src="../html.jpg"/>
<b>Generate diagrams with Javadoc</b></a>

<a class="run1" href="https://mnlipp.github.io/jdrupes-taglets/plantuml-taglet/javadoc/overview-summary.html">
<img loading="lazy" width="32" height="32" src="../html.jpg"/>
<b>Generate diagrams with Javadoc and PlantUML Taglet</b></a>

<a class="run1" href="doxygen.html">
<img loading="lazy" width="32" height="32" src="../doxygen.jpg"/>
<b>Use it with Doxygen</b></a>

<a class="run1" href="docutils.html">
<img loading="lazy" width="32" height="32" src="../docutils.png"/>
<b>Integrate it with docutils</b></a>

<a class="run1" href="http://code.google.com/p/asciidoc-plantuml/wiki/Usage">
<img loading="lazy" width="32" height="32" src="../asciidoc.png"/>
<b>Use it with AsciiDoc</b></a>

<a class="run1" href="http://asciidoctor.org/news/2014/02/18/plain-text-diagrams-in-asciidoctor/">
<img loading="lazy" width="32" height="32" src="../asciidoctor.png"/>
<b>Use it with Asciidoctor</b></a>

<a class="run1" href="https://github.com/talsma-ict/umldoclet">
<img loading="lazy" width="32" height="32" src="../duke.jpg"/>
<b>Generate UML description from Java sources using a doclet</b></a>

<a class="run1" href="https://github.com/Abnaxos/pegdown-doclet">
<img loading="lazy" width="32" height="32" src="../duke.jpg"/>
<b>Use it with Pegdown</b></a>

<a class="run1" href="https://github.com/gboersma/uml-java-doclet">
<img loading="lazy" width="32" height="32" src="../duke.jpg"/>
<b>Use enhanced Doclet</b></a>

<a class="run1" href="http://nplant.org">
<img loading="lazy" width="32" height="32" src="../csharp.png"/>
<b>Generate UML from C# sources</b></a>

<a class="run1" href="https://github.com/pnerg/sbt-scaladoc-settings-plugin">
<img loading="lazy" width="32" height="32" src="../icon_scala.png"/>
<b>Generate UML from Scaladoc</b></a>

<a class="run1" href="http://pypi.python.org/pypi/sphinxcontrib-plantuml">
<img loading="lazy" width="32" height="32" src="../sphinx.png"/>
<b>Integrate it with Sphinx</b></a>

<a class="run1" href="http://pypi.python.org/pypi/sadisplay">
<img loading="lazy" width="32" height="32" src="../sql.png"/>
<b>Generate PlantUML diagrams from <i>SqlALchemy</i> models</b></a>

<a class="run1" href="https://github.com/tysenmoore-xse/LDoc">
<img loading="lazy" width="32" height="32" src="../lua.png"/>
<b>Generate PlantUML diagram for Lua with LDoc</b></a>

<a class="run1" href="https://github.com/david-w-millar/grails-plantuml-plugin">
<img loading="lazy" width="32" height="32" src="../grails.png"/>
<b>Generate PlantUML diagrams from grails project sources</b></a>

<a class="run1" href="https://github.com/davidfuhr/php-plantumlwriter">
<img loading="lazy" width="32" height="32" src="../icon_php.png"/>
<b>Create PlantUML class diagrams from your PHP source.</b></a>

<a class="run1" href="https://github.com/woudshoo/cl-robodoc">
<img loading="lazy" width="32" height="32" src="../robodoc.png"/>
<b>Integrate PlantUML with ROBODoc.</b></a>

<a class="run1" href="https://github.com/jgm/pandocfilters">
<img loading="lazy" width="32" height="32" src="../pandoc.png"/>
<b>Integrate PlantUML with Pandoc.</b></a>

<a class="run1" href="https://github.com/Banno/sbt-plantuml-plugin">
<img loading="lazy" width="32" height="32" src="../sbt.png"/>
<b>Integrate PlantUML with Sbt, the interactive build tool.</b></a>

<a class="run1" href="https://www.npmjs.com/package/gulp-puml">
<img loading="lazy" width="32" height="32" src="../gulp.png"/>
<b>Gulp plugin for automated generation of diagrams.</b></a>

<a class="run1" href="https://www.npmjs.com/package/esf-puml">
<img loading="lazy" width="32" height="32" src="../nodejs.png"/>
<b>Node.Js module for processing PlantUML</b></a>

<a class="run1" href="https://www.npmjs.com/package/node-plantuml">
<img loading="lazy" width="32" height="32" src="../nodejs.png"/>
<b>Another Node.js module and CLI</b></a>

<a class="run1" href="https://www.npmjs.com/package/typedoc-plantuml">
<img loading="lazy" width="32" height="32" src="../typedoc.png"/>
<b>Plugin for TypeDoc for TypeScript programs</b></a>

<a class="run1" href="https://github.com/juanmf/Java2PlantUML">
<img loading="lazy" width="32" height="32" src="../duke.jpg"/>
<b>Maven plugin to inspect at compile time</b></a>

<a class="run1" href="https://github.com/Alfresco/alfresco-anaxes-chartmap">
<img loading="lazy" width="32" height="32" src="../helm.png"/>
<b>Show the recursive dependencies of a Helm Chart</b></a>

<!-- ..................................................................................... -->

<div class="runt">
<h2>Online Editors</h2>
</div>

<a class="run1" href="https://sites.google.com/site/plantumlgizmo/home">
<img loading="lazy" width="32" height="32" src="../gizmo.png"/>
<b>Create and update UML diagrams inside of Google Docs</b></a>

<a class="run1" href="server.html">
<img loading="lazy" width="32" height="32" src="../tomcat.jpg"/>
<b>Use the online servlet</b></a>

<a class="run1" href="http://www.codeuml.com/">
<img loading="lazy" width="32" height="32" src="../dotnet.jpg"/>
<b>Codeuml - design UML diagrams as fast as you can code</b></a>

<a class="run1" href="http://www.planttext.com/">
<img loading="lazy" width="32" height="32" src="../planttext.png"/>
<b>PlantText UML Editor</b></a>

<a class="run1" href="http://seeduml.com/">
<img loading="lazy" width="32" height="32" src="../seeduml.png"/>
<b>Seeduml</b></a>

<a class="run1" href="http://andresmrm.github.io/EtherPlant/src/etherplant.html">
<img loading="lazy" width="32" height="32" src="../etherpad.png"/>
<b>EtherPlant on Etherpad</b></a>

<a class="run1" href="http://sujoyu.github.io/plantuml-previewer/">
<img loading="lazy" width="32" height="32" src="../dos.jpg"/>
<b>Emacs/vim online Editor</b></a>

<a class="run1" href="http://www.texwriting.com/uml/new">
<img loading="lazy" width="32" height="32" src="../texwriting.png"/>
<b>TexWriting online Editor</b></a>

<!-- ..................................................................................... -->

<div class="runt">
<h2>Other</h2>
</div>

<a class="run1" href="https://github.com/jfudickar/json2puml">
<img loading="lazy" width="32" height="32" src="../json2pumlpng.png"/>
<b>Make data visible and understandable</b></a>

<a class="run1" href="https://www.npmjs.com/package/water-plant-uml">
<img loading="lazy" width="32" height="32" src="../npm.png"/>
<b>Node.js CLI tool that allows for live-reloading and exporting PlantUML.</b></a>

<a class="run1" href="https://github.com/kmierzeje/plantuml-powerpoint-addin">
<img loading="lazy" width="32" height="32" src="../powerpoint.png"/>
<b>Embed PlantUml diagrams in PowerPoint presentations.</b></a>

<a class="run1" href="https://github.com/WillBooster/plantuml-visualizer">
<img loading="lazy" width="32" height="32" src="../chrome.png"/>
<b>A Chrome / Firefox extension for visualizing PlantUML descriptions.</b></a>

<a class="run1" href="https://hub.docker.com/r/plantuml/plantuml-server">
<img loading="lazy" width="32" height="32" src="../icon_docker.png"/>
<b>Use the Docker repository</b></a>

<a class="run1" href="https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/administration/integration/plantuml.md">
<img loading="lazy" width="32" height="32" src="../gitlab2.png"/>
<b>PlantUML with GitLab.org / GitLab Community Edition</b></a>

<a class="run1" href="https://github.com/linux-china/plantuml-gist">
<img loading="lazy" width="32" height="32" src="../github3.png"/>
<b>PlantUML with Github Gist and Gitlab Support</b></a>

<a class="run1" href="https://github.com/nus/gitbucket-plantuml-plugin">
<img loading="lazy" width="32" height="32" src="../github3.png"/>
<b>A GitBucket plugin renders PlantUML sources</b></a>

<a class="run1" href="http://scn.sap.com/community/abap/blog/2013/08/21/auto-generating-uml-diagrams-from-abap-code">
<img loading="lazy" width="32" height="32" src="../sap.png"/>
<b>Auto generating UML diagrams from SAP/ABAP code</b></a>

<a class="run1" href="http://eldemcan.github.io/Puse/">
<img loading="lazy" width="32" height="32" src="../puseicon.png"/>
<b>Puse editor</b></a>

<a class="run1" href="https://chrome.google.com/webstore/detail/plantuml-viewer/legbfeljfbjgfifnkmpoajgpgejojooj">
<img loading="lazy" width="32" height="32" src="../chrome.png"/>
<b>PlantUML Chrome extension</b></a>

<a class="run1" href="http://renderist.herokuapp.com">
<img loading="lazy" width="32" height="32" src="../heroku.png"/>
<b>Cloud version with Renderist on herokuapp.com</b></a>

<a class="run1" href="https://sourceforge.net/projects/plantumlqeditor">
<img loading="lazy" width="32" height="32" src="../qt4.jpg"/>
<b>PlantUML QEditor written in Qt4</b></a>

<a class="run1" href="http://www.youtube.com/watch?v=f9MvEiCgM3Q">
<img loading="lazy" width="32" height="32" src="../sketchlet.png"/>
<b>Sketchlet : a software designer&#39;s sketchbook</b></a>

<a class="run1" href="gui.html">
<img loading="lazy" width="32" height="32" src="../gui.jpg"/>
<b>Double-click on the .jar to run it</b></a>

<a class="run1" href="http://code.google.com/p/plantumleditor/">
<img loading="lazy" width="32" height="32" src="../dotnet.jpg"/>
<b>PlantUML Editor: A fast and simple UML editor using WPF Dotnet</b></a>

<a class="run1" href="server.html">
<img loading="lazy" width="32" height="32" src="../tomcat.jpg"/>
<b>Install your own server</b></a>

<a class="run1" href="https://github.com/mete0r/textcube-plantuml">
<img loading="lazy" width="32" height="32" src="../textcube.png"/>
<b>Use it with textcube</b></a>

<a class="run1" href="http://www.gravizo.com">
<img loading="lazy" width="32" height="32" src="../gravizo.png"/>
<b>Gravizo.com</b></a>

</div><!-- run -->

<div id="cols2">
<div id="cols2_">

<!-- Ezoic - CM2L - under_first_paragraph -->
<span id="ezoic-pub-ad-placeholder-107"></span><!-- ezoic_pub_ad_placeholder-107-under_first_paragraph-120x600-107-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-107-under_first_paragraph-160x600-107-nonexxxnonexxxxxxezmaxscaleval100 -->
<!-- End Ezoic - CM2L - under_first_paragraph -->

</div><!-- cols2_ -->
</div><!-- cols2 -->

</div><!-- cols -->

<!-- ..................................................................................... -->





<p>

<!-- Ezoic - Natif02L - bottom_of_page -->
</p><span id="ezoic-pub-ad-placeholder-104"></span><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-234x60-104-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-468x60-104-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-728x90-104-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-970x250-104-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-300x250x3-104-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-970x90-104-nonexxxnonexxxxxxezmaxscaleval100 -->
<!-- End Ezoic - Natif02L - bottom_of_page -->
</div>
<!-- https://css-tricks.com/almanac/properties/f/float/ -->
<!-- https://css-tricks.com/snippets/css/a-guide-to-flexbox/ -->


<style>
.btm {
text-align:center;
}
.btm a{
    text-decoration:none;
    color:#b0c0d0;
}
.btm a:hover{
    color:#8CB4FF;
}
</style>

<div class="btm">
<hr/>
<a href="https://g.ezoic.net/privacy/plantuml.com"><small>Privacy Policy</small></a>
    
<a href="../direct-sales.html"><small>Advertise</small></a>
<p>
</p></div><!--btm-->


<!--root-->

<!-- Start of StatCounter Code --><script type="text/javascript">
var sc_project=11133780; var sc_invisible=1; var sc_security="3da8bfdb";
</script>
<script async="" type="text/javascript" src="https://www.statcounter.com/counter/counter.js"></script> <!-- End of StatCounter Code -->


<!--[selectrongo:done]--><script type="text/javascript">
				var __inScopeForCCPA = false;
		function __uspapi(command, version, callback) {
			var response = null;
			var successs = false;
			if (command === "getUSPData" && version === 1) {
				var uspString = "1"; // Version
				if (__inScopeForCCPA) {
					uspString += "N"; // Has Explicit Notice for Opt Out been provided (ex footer or minor consent modal)
					var result;
					var consentCookie = (result = new RegExp('(?:^|; )ezoccpaconsent=([^;]*)').exec(document.cookie)) ? (result[1]) : null;
					if (consentCookie === "nonconsent") {
						uspString += "Y";
					}
					else {
						uspString += "N";
					}
					uspString += "N" // Is pub a signatory to the IAB Limited Service Provider Agreement (http://www.iabprivacy.com/)
				}
				else {
					uspString += "---";
				}
				response = {
					uspString: uspString,
					version: 1
				};
				success = true;
			}
			return callback(response, success);
		};
		function __receiveUspapiMessage(event) {
			if (event.data.hasOwnProperty('__uspapiCall')) {
				__uspapi('getUSPData', 1, function(uspData, success) {
					event.source.postMessage({
						__uspapiReturn: {
							returnValue: uspData,
							success: success,
							callId: event.data.__uspapiCall.callId
						}
					},
					event.origin);
				});
			}
			return null;
		};
		window.addEventListener("message", __receiveUspapiMessage, false);
</script>
<script>__ez.queue.addFile('/tardisrocinante/vitals.js', '/tardisrocinante/vitals.js?gcb=2&cb=3', false, ['/parsonsmaize/mulvane.js'], true, false, true, false);</script>
<script>var _audins_dom="plantuml_com",_audins_did=173770;__ez.queue.addDelayFunc("audins.js","__ez.script.add", "//go.ezodn.com/detroitchicago/audins.js?cb=195-2");</script><noscript><div style="display:none;"><img src="https://pixel.quantserve.com/pixel/p-31iz6hfFutd16.gif?labels=Domain.plantuml_com,DomainId.173770" border="0" height="1" width="1" alt="Quantcast"/></div></noscript>
<script>__ez.queue.addFile('/beardeddragon/drake.js', '/beardeddragon/drake.js?gcb=2&cb=4', false, [], true, false, true, false);</script>
<script type="text/javascript" style='display:none;'>var __ez_dims = (function() {
		var setCookie = function( name, content, expiry ) {
			return document.cookie = name+'='+content+((expiry)?';expires='+(new Date(Math.floor(new Date().getTime()+expiry*1000)).toUTCString()):'')+';path=/';
		};
		var ffid = 1;
		var oh = window.screen.height;
		var ow = window.screen.width;
		var h = ffid === 1 ? oh : (oh > ow) ? oh : ow;
		var w = ffid === 1 ? ow : (oh > ow) ? ow : oh;
		var uh = window.innerHeight || document.documentElement.clientHeight || document.getElementsByTagName('body')[0].clientHeight;
		var uw = window.innerWidth || document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth;
		setCookie('ezds', encodeURIComponent('ffid='+ffid+',w='+w+',h='+h), (31536e3*7));
		setCookie('ezohw', encodeURIComponent('w='+uw+',h='+uh), (31536e3*7));
	})();</script>
<script type='text/javascript' style='display:none;' async>__ez.queue.addFile('/parsonsmaize/chanute.js', '/parsonsmaize/chanute.js?a=a&cb=7&dcb=195-2&shcb=34', true, ['/parsonsmaize/mulvane.js'], true, false, false, false);</script>
<script type='text/javascript' style='display:none;' async>__ez.queue.addFile('/porpoiseant/jellyfish.js', '/porpoiseant/jellyfish.js?a=a&cb=10&dcb=195-2&shcb=34', false, [], true, false, false, false);</script></body></html>